//
//  BaseTableViewCell.m
//  TestForReactiveCocoa
//
//  Created by liangshangjia on 16/2/17.
//  Copyright © 2016年 Sami-Network. All rights reserved.
//

#import "BaseTableViewCell.h"
@implementation BaseTableViewCell
static NSString *ID = nil;
+ (NSString *)cellIdentifier
{
    if (ID == nil) {
        ID = NSStringFromClass([self class]);
    }

    return ID;
}


+ (CGFloat)cellHeightWithEntity:(id)entity atIndex:(NSInteger)index
{
    return DBL_EPSILON;
}


+ (void)tableView:(UITableView *)tableView registerCellWithIdentifier:(NSString *)identifier
{
    [tableView registerClass:NSClassFromString(identifier) forCellReuseIdentifier:identifier];
}

+ (void)registerCellToTableView:(UITableView *)tableView
{
    [BaseTableViewCell tableView:tableView registerCellWithIdentifier:[[self class] cellIdentifier]];
}


+ (instancetype)cellWithTableView:(UITableView *)tableView  atIndexPath:(NSIndexPath *)indexPath
{
    BaseTableViewCell *cell =
        [indexPath isKindOfClass:[NSIndexPath class]] ?
            [tableView dequeueReusableCellWithIdentifier:[[self class] cellIdentifier] forIndexPath:indexPath]
            :
            [tableView dequeueReusableCellWithIdentifier:[[self class] cellIdentifier]];
    
    if (!cell) {
        cell = [[[self class] alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:[[self class] cellIdentifier]];
    }
    return cell;
}


+ (instancetype)cellWithTableView:(UITableView *)tableView
{
    return [[self class] cellWithTableView:tableView atIndexPath:nil];
}


///=================================================================================
///=================================================================================

- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
    if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
        [self initialize];
    }
    return self;
}

- (void)initialize
{
    self.selectionStyle = UITableViewCellSelectionStyleNone;
}

- (void)configureCellWithEntity:(id)entity
{
    
}


@end
